package com.example.blogspring.utils;

import org.springframework.util.DigestUtils;
import org.springframework.util.StringUtils;

import java.util.UUID;

/**
 * @author : niu niu
 * @version : 1.0.0
 * @date : 2023/5/22 5:13
 */
public class SecurityUtils {
    /**
     * 加密，盐值+密码 加密后，盐值+加密密码 存入数据库
     * @param password
     * @return
     */
    public static String encrypt(String password) {
//        生成唯一盐值
        String salt = UUID.randomUUID().toString().replace("-","");
        String finalPassword = DigestUtils.md5DigestAsHex((salt+password).getBytes());

        return salt+finalPassword;
    }

    public static boolean decrypt(String password,String securityPassword){
//        非空校验
        if (!StringUtils.hasLength(password) || !StringUtils.hasLength(securityPassword)){
            return false;
        }
        if (securityPassword.length()!=64){
            return false;
        }
//        拿盐值
        String salt = securityPassword.substring(0,32);
//        校验
        String finalPassword = DigestUtils.md5DigestAsHex((salt+password).getBytes());
        return (salt+finalPassword).equals(securityPassword);
    }
}
